package com.aipartner.service;

import com.aipartner.dto.AssistantFunctionResponse;

import java.util.List;
import java.util.Map;

/**
 * Assistant Service Interface
 * 
 * @author AI Partner Team
 * @since 2024-01-20
 */
public interface AssistantService {
    
    /**
     * Get all assistant categories
     * 
     * @return Categories list
     */
    List<Map<String, Object>> getAllCategories();
    
    /**
     * Get functions by category
     * 
     * @param categoryId Category ID
     * @return Functions list
     */
    List<AssistantFunctionResponse> getFunctionsByCategory(String categoryId);
    
    /**
     * Get all functions
     * 
     * @return All functions list
     */
    List<AssistantFunctionResponse> getAllFunctions();
    
    /**
     * Get function details by ID
     * 
     * @param functionId Function ID
     * @return Function details
     */
    AssistantFunctionResponse getFunctionDetails(String functionId);
    
    /**
     * Search functions by keyword
     * 
     * @param keyword Search keyword
     * @return Matching functions
     */
    List<AssistantFunctionResponse> searchFunctions(String keyword);
    
    /**
     * Get hot recommendation functions
     * 
     * @return Hot functions list
     */
    List<AssistantFunctionResponse> getHotRecommendations();
}